#include "selectiontool.h"
#include "../shape/shape.h"
#include "customgraphicsscene.h"
#include <QDebug>
#include "../flow/flowtext.h"
#include "../shape/resizableshape.h"

/**
 * Вызывает окно свойств, если таковое имеется.
 */
bool SelectionSceneTool::mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event)
{
	Shape *s;
	if (s = dynamic_cast<Shape *>(scene()->itemAt(event->scenePos())))
		s->editProperties();
	return false;
}

/**
 * Производит копирование по Alt.
 */
bool SelectionSceneTool::mousePressEvent (QGraphicsSceneMouseEvent *event)
{
	if (event->modifiers() & Qt::AltModifier)
	{
		//_altmode = true;
		CustomGraphicsScene *scn = dynamic_cast<CustomGraphicsScene *>(scene());
		scn->notifyStateChangeByUser();
		CustomGraphicsScene *temp = scn->extractSelectionCopy();
		QList<Shape *> list = scn->addOtherSceneItems(temp);
		scn->clearSelection();
		for(int i=0; i<list.count(); ++i)
			list[i]->setSelected(true);
		delete temp;
	}
	return true;
}

bool SelectionSceneTool::mouseMoveEvent (QGraphicsSceneMouseEvent *event)
{
	return true;
}

bool SelectionSceneTool::mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
{
	return true;
}
